package com.kaoshi.myweb.webstruts.controller.parabind;

import com.kaoshi.myweb.webstruts.model.UserModel;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/*
 * Model-Driven（模型驱动的）Action
   它很像Struts的FormBean，但在Struts2中，只要普通Java对象就可以充当模型部分。模型驱动的Action要求Action实现ModelDriven接口，它有一个方法：Object getModel();，我们用这个方法返回我们的模型对象就可以了。
1：使Action类实现ModelDriven接口，并实现getModel方法
2：去掉原来的getUm和setUm方法，现在统一从getMedel走
3：对应的Jsp页面也不需要再写um.id了，直接写成id就可以了，因为这个时候Struts2知道这个id是谁的id，当我们采用Model-Driven（模型驱动的）Action时，它将取得模型对象保存在值堆栈中。“name=“id"”就是代表直接调用模型对象的setId()方法。
4：在struts.xml中配置<interceptor-ref name=“modelDriven”/> ，它的作用就是将模型对象保存到值堆栈中。
注意 ： 为了保证一致性，不应该在请求过程中改变getModel返回的值，getModel方法 会先于execute方法被执行。
 */
public class ModelDriveAction extends ActionSupport implements ModelDriven<UserModel> {
	private UserModel userModel= new UserModel();;

	@Override
	public String execute() throws Exception {
		System.out.println(userModel.getAge());
		return super.execute();
	}
	
	@Override
	public UserModel getModel() {
		return userModel;
	}
}
